﻿using LCS.Api.Dtos.Login;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;

namespace LCS.WPF.Services
{
    public class AccountApi : BaseApi
    {
        //日志 服务器和客户端
        //AuthAttribute认证
        //i18n翻译的问题
        //wpf CanExecute和WPF RelayCommand的问题 带参数的和实现(委托事件的注册等)
        //BASE_URL和配置文件的问题
        //AUTO 自动升级的问题 服务端可客户端都有
        //客户端API的封装
        //注释文档无法正确生成
        //打包安装和升级的问题
        //api地址应该维护在配置文件或者环境变量中
        //文件链接的问题（已解决）
        //发布release以及嵌入一些文件的问题
        //代码生成的问题swagger
        //blend的使用问题
        //初始化数据也要入git
        //文档入git
        //数据库需要用sql prompt
        //自定义组件和窗体组件的封装

        public string BASE_URL = "https://localhost:44392/api";

        public string JSON_MIME = "application/json";

        public async Task<LoginOutputDto> Login(string userName, string userPassword)
        {

            HttpClient webClient = new HttpClient();
            var requestData = new
            {
                userName = userName,
                userPassword = userPassword
            };

            HttpContent content = new StringContent(JsonConvert.SerializeObject(requestData));
            content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue(JSON_MIME);

            var result = await webClient.PostAsync($"{BASE_URL}/account/login", content);

            var jsonStr = await result.Content.ReadAsStringAsync();

            return JsonConvert.DeserializeObject<LoginOutputDto>(jsonStr);
            //return result;

        }

    }
}
